(31337_57024194971618, `The [highlight]\[fields][/highlight] section defines different types of fields that can be included in the instruction definitions, as well as what values they can have. 

[box][fields]
register
r0 000
r1 001
r2 010
r3 011

condition
eq 00
ne 01
cs 10
hs 10
[/box]

Fields are separated by blank lines, and each field starts with a field name on the first line followed by one or more allowable field values. Values are bit patterns and all values within a field must have the same bit length.

Fields are used in instructions like this:
[box]mov r1, r3[/box]

[b]Default values[/b]
Some architectures, like aarch64, allows an optional "#" before immediates. This can be handled using fields. Notice that quotes are allowed around field names for this reason.

[box]pound
"#" 0
"" 0[/box]

[b]Reserved field names[/b]
There are two reserved names:
* [highlight]label[/highlight] references labels within the assembler (eg: [highlight]mylabel:[/highlight]).
* [highlight]immediate[/highlight] references immediate values`).